


%-----------------------------------------------------------------------------
\chapter{Introduction}
%-----------------------------------------------------------------------------

%Hier bei dieser Hauptüberschrift schreibst du nichts.
%Denn bei deiner ersten Bachelorarbeit hast du hier
%an dieser Stelle auch nichts geschrieben.


%Haui
%Korrekturlesen Rechtschreibprüfung


%Datenbanken erklären
%Java
%Spring
%Database
%coupling
%nachsehen
%Database refactoring
%nachsehen
%Typen aufschlüsseln
%JUnit
%Was ist es 
%Eventuell sagen was für ein Test
%Im Vergleich zu anderen
%Unit- Integrationtest
%Alternative implementations
%Inhalt Session 2 Folien
%Alternative Implementations
%Andere Datenbanken
%Andere Java Technologien
%Agile Besten etwas eingehen

%Anfang wichtigste Dinge nehmen
%Ausbauen wenn zu wenig 

%-----------------------------------------------------------------------------
\section{Motivation}
%-----------------------------------------------------------------------------

%Layernamen richtig stellen
Nowadays refactoring database models is not an exceptional task anymore but a
recurring process. Unfortunately relational database tables and structures tend
to tight coupling. Therefore changes are complicated, error prone and often lead
to adaptions in non database domain layer code structures due to sole\-ly
tech\-ni\-cal reasons. Furthermore this often leads to failures that get
not discovered until raised in production environments.

\section{Task description}
Therefore a technique how database structures can be refactored without changing
existing program code on the domain layer - or above - that does not need
change from a business view of perspective has to be found and demonstrated. Furthermore the
refactoring has to be done in a safe manner.

\section{Objectives}
This means methods have to be found and applied that 
  \begin{enumerate}
    \item
    permit to apply changes to relational database structures without the need
    to alter domain layer program elements that reside on top of the database
    \item
    and that assure that previous functionality is still completely provided for
    domain layer components with the new database structure.
  \end{enumerate}

Furthermore all of this has to be achieved utilizing the Java programming language and
software in conjunction with the so called Java Spring framework.




